home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MIDICraft's MIDINET CD-ROM
/
MIDICraft's MIDINET CD-ROM.iso
/
DOSUTILS
/
MIDIPROG.DOC
< prev
next >
Wrap
Text File
|
1997-03-29
|
9KB
|
208 lines
******************************
MIDIPROG v1.0
show used midi programs (GM, XG, GS)
by Guenter Nagler
1997
(gnagler@ihm.tu-graz.ac.at)
******************************
[0] FEATURES
+ reads a binary midi file
+ shows all programs used in the song
+ lookup in GS, XG drum and program tables
[1] BACKGROUND
Currently GS and XG midi standard offer access to a huge number of
sounds for midi songs. The tables are rather complex for manual lookup.
This program should help to automize this task.
It collects all necessary parameters and shows a program name that should
be produced when correct midi mode is used.
The table of programs and program names were taken from the manual to my
Yamaha DB50XG wavetable daughterboard which is GM, XG and GS compatible.
All program names are truncated to max. 8 characters.
[2] FILES DESCRIPTION
MIDIPROG.EXE.........lookup program
MIDIPROG.DOC.........this file, showing usage of MIDIPROG.EXE
MIDIIO.HPP..........header file for a c++ midi parser
MIDIIO.CPP..........source code for a c++ midi parser
MIDIPROG.CPP.........c++ source code for modifying midi files
PROGNAME.CPP......... These file contains the program tables for GM, GS and XG
PROGNAME.HPP.........header file for access to program tables
MIDIPROG.MAK.........make file for project
MIDIPROG.CFG.........compiler options for make
MIDIPROG.PRJ.........compiler project for Borland (tm) c++ compilers
only MIDIPROG.EXE is required to run program
[3] COPYRIGHT
MIDIPROG (c) 1997 was created by Guenter Nagler.
MIDIPROG is free and may be used as you wish with this one exception:
You may NOT charge any fee or derive any profit for distribution
of MIDIPROG. Thus, you may NOT sell or bundle MIDIPROG with any
product in a retail environment (shareware disk distribution, CD-ROM,
etc.) without permission of the author.
You may give MIDIPROG to your friends, upload it to a BBS, or ftp it to
another internet site, as long as you don't charge anything for it.
[4] DISCLAIMER
MIDIPROG was designed to handle 100% compatible midi files.
Its parser was tested with 600 different midi files but I can not say if
each 100% midi compatible midi file can be correctly converted.
So I give no guarantees of the results, especially with non 100%
compatible midi files.
If you find a midi file that you think to be 100% compatible midi
that is not correctly converted, please send a sample file to
gnagler@ihm.tu-graz.ac.at .
Use MIDIPROG at your own risk. Anything you do with MIDIPROG is your
responsibility, and not the author's. Any damage caused to any person,
computer, software, hardware, company, or business by running MIDIPROG
is your responsibility, and the author will not be liable.
If you don't understand these terms, or are not sure of something, or
are afraid something bad might come of using MIDIPROG, don't use it!
You are here forewarned.
[5] INSTALLATION
[MSDOS]
Simply copy MIDIPROG.EXE in a directory that is in your path.
When you start the program without arguments
[UNIX]
compile sources with your C++ compiler (e.g. GNU Compiler g++):
g++ -o midiprog midiprog.cpp midiio.cpp progname.cpp
and run program
$ midiprog
C:\> MIDIPROG
you should get the usage text (see next section)
[6] USAGE
usage: MIDIPROG [-gm][-gs][-xg] file.mid
The parts in brackets [...] are optional.
The program MIDIPROG allows following option:
-version get program version
-gm assume GM mode
-gs assume GS mode
-xg assume XG mode
The midi mode can be changed inside midi file with one of following sysex commands:
GM Reset: F0 05 7E 7F 09 01 F7
GS Reset: F0 0A 41 10 42 12 40 00 7F 00 41 F7
XG Reset: F0 08 43 10 4C 00 00 7E 00 F7
[8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
WWW: http://hgiicm.tu-graz.ac.at/Cpub
contains all my dos/unix midi programs
EMAIL: gnagler@ihm.tu-graz.ac.at
[9] USE
c> midiprog vodoochi.mid
mode=GS channel=12 program=78 hbank=00 lbank=00 name=FretNoiz
mode=GS channel=2 program=1D hbank=00 lbank=00 name=Ovrdrive
mode=GS channel=4 program=1B hbank=00 lbank=00 name=CleanGtr
mode=GS channel=8 program=1D hbank=00 lbank=00 name=Ovrdrive
mode=GS channel=10 program=00 hbank=00 lbank=00 name=Standard
mode=GS channel=9 program=77 hbank=00 lbank=00 name=RevCymbl
mode=GS channel=7 program=1D hbank=00 lbank=00 name=Ovrdrive
mode=GS channel=1 program=1D hbank=00 lbank=00 name=Ovrdrive
mode=GS channel=6 program=1F hbank=00 lbank=00 name=Harmnics
mode=GS channel=3 program=21 hbank=00 lbank=00 name=FngrBass
mode=GS channel=5 program=1D hbank=00 lbank=00 name=Ovrdrive
Hint: The program changes are sorted by time of first note that is
played with this sound.
c> midiprog demoxg.mid
mode=XG channel=1 program=23 hbank=40 lbank=00 name=Stream
mode=XG channel=2 program=5F hbank=00 lbank=40 name=PolarPad
mode=XG channel=4 program=21 hbank=40 lbank=00 name=Thunder
mode=XG channel=3 program=65 hbank=00 lbank=40 name=GobSyn
mode=XG channel=9 program=64 hbank=40 lbank=00 name=FootStep
mode=XG channel=10 program=08 hbank=7F lbank=00 name=Room
mode=XG channel=6 program=50 hbank=40 lbank=00 name=CarEngin
mode=XG channel=8 program=63 hbank=40 lbank=00 name=Heart
mode=XG channel=5 program=37 hbank=40 lbank=00 name=Maou
mode=XG channel=5 program=52 hbank=40 lbank=00 name=CarPass
mode=XG channel=11 program=01 hbank=7E lbank=00 name=SFX2
mode=XG channel=5 program=51 hbank=40 lbank=00 name=CarStop
mode=XG channel=7 program=61 hbank=40 lbank=00 name=Scream
mode=XG channel=7 program=53 hbank=40 lbank=00 name=CarCrash
mode=XG channel=6 program=51 hbank=40 lbank=00 name=CarStop
mode=XG channel=6 program=53 hbank=40 lbank=00 name=CarCrash
mode=XG channel=6 program=52 hbank=40 lbank=00 name=CarPass
mode=XG channel=8 program=64 hbank=40 lbank=00 name=FootStep
mode=XG channel=8 program=41 hbank=40 lbank=00 name=DoorSqek
mode=XG channel=8 program=42 hbank=40 lbank=00 name=DoorSlam
mode=XG channel=8 program=60 hbank=40 lbank=00 name=Laughing
c> midiprog fadetogr.mid
mode=GM channel=1 program=4F hbank=00 lbank=00 name=Ocarina
mode=GM channel=2 program=51 hbank=00 lbank=00 name=Saw Ld
mode=GM channel=10 program=19 hbank=00 lbank=00 name=GM Drums
mode=GM channel=1 program=50 hbank=00 lbank=00 name=SquareLd
mode=GM channel=4 program=31 hbank=00 lbank=00 name=Ensmble2
mode=GM channel=11 program=00 hbank=7F lbank=00 name=GrandPno
mode=GM channel=7 program=3E hbank=00 lbank=00 name=SynBras1
mode=GM channel=3 program=3E hbank=00 lbank=00 name=SynBras1
mode=GM channel=5 program=08 hbank=00 lbank=00 name=Celesta
mode=GM channel=6 program=08 hbank=00 lbank=00 name=Celesta
mode=GM channel=12 program=18 hbank=7F lbank=00 name=NylonGtr
mode=GM channel=8 program=38 hbank=00 lbank=00 name=Trumpet
Hint: if no midi mode is specified and midi file does not contain a
midi command to set a certain mode, then GM is assumed. In GM mode
only channel 10 is assumed to contain drums.
c> midiprog -gs fadetogr.mid
mode=GS channel=1 program=4F hbank=00 lbank=00 name=Ocarina
mode=GS channel=2 program=51 hbank=00 lbank=00 name=Saw Ld
mode=GS channel=10 program=19 hbank=00 lbank=00 name=Analog
mode=GS channel=1 program=50 hbank=00 lbank=00 name=SquareLd
mode=GS channel=4 program=31 hbank=00 lbank=00 name=Ensmble2
mode=GS channel=11 program=00 hbank=7F lbank=00 name=a.piano1
mode=GS channel=7 program=3E hbank=00 lbank=00 name=SynBras1
mode=GS channel=3 program=3E hbank=00 lbank=00 name=SynBras1
mode=GS channel=5 program=08 hbank=00 lbank=00 name=Celesta
mode=GS channel=6 program=08 hbank=00 lbank=00 name=Celesta
mode=GS channel=12 program=18 hbank=7F lbank=00 name=synbras1
mode=GS channel=8 program=38 hbank=00 lbank=00 name=Trumpet
Hint: midiprog can be forced to start in GS mode by option -gs.
GS assumes drums to be on channel 10.
c> midiprog -xg fadetogr.mid
mode=XG channel=1 program=4F hbank=00 lbank=00 name=Ocarina
mode=XG channel=2 program=51 hbank=00 lbank=00 name=Saw Ld
mode=XG channel=10 program=19 hbank=00 lbank=00 name=GM Drums
mode=XG channel=1 program=50 hbank=00 lbank=00 name=SquareLd
mode=XG channel=4 program=31 hbank=00 lbank=00 name=Ensmble2
mode=XG channel=11 program=00 hbank=7F lbank=00 name=Standard
mode=XG channel=7 program=3E hbank=00 lbank=00 name=SynBras1
mode=XG channel=3 program=3E hbank=00 lbank=00 name=SynBras1
mode=XG channel=5 program=08 hbank=00 lbank=00 name=Celesta
mode=XG channel=6 program=08 hbank=00 lbank=00 name=Celesta
mode=XG channel=12 program=18 hbank=7F lbank=00 name=Electro
mode=XG channel=8 program=38 hbank=00 lbank=00 name=Trumpet
Hint: xg drums depend on hbank value and can be on any channel.